package job3;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/*

分析以下需求，并用代码实现：
(1)定义一个学生类Student，包含属性：姓名(String name)、年龄(int age)
(2)定义Map集合，用Student对象作为key，用字符串(此表示表示学生的住址)作为value
(3)利用四种方式遍历Map集合中的内容，格式：key::value
 */
public class Main {
    public static void main(String[] args) {
        Map<Student, String> map = new HashMap<>();
        map.put(new Student("lvbu", 27), "北京");
        map.put(new Student("zhaoyun", 23), "上海");
        map.put(new Student("machao", 21), "广东");

//        第一种遍历方式 Map toString
        System.out.println("第一种遍历方式 Map toString");
        System.out.println(map.toString());
//        第二种遍历方式 keySet 视图迭代
        System.out.println("第二种遍历方式 keySet 视图迭代");
        Set<Student> keySet = map.keySet();
        for (Student student : keySet) System.out.println(student + "::" + map.get(student));
//        第三种遍历方式 valueSet 视图迭代
        System.out.println("第三种遍历方式 valueSet 视图迭代");
        Collection<String> values = map.values();
        for (String address : values) System.out.println(address);
//        第四种遍历方式 entrySet 视图迭代
        System.out.println("第四种遍历方式 entrySet 视图迭代");
        Set<Map.Entry<Student, String>> entries = map.entrySet();
        for (Map.Entry<Student, String> entry : entries) System.out.println(entry.getKey() + "::" + entry.getValue());
    }
}
